
<!doctype html>
<html lang="zh" class="no-js">
  <head>
    
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,initial-scale=1">
      
      
      
      
      <link rel="shortcut icon" href="../../assets/images/favicon.png">
      <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-6.1.5">
    
    
      
        <title>实验步骤 - 计算机体系结构实验（2021春季） | 哈工大（深圳）</title>
      
    
    
      <link rel="stylesheet" href="../../assets/stylesheets/main.21aed14c.min.css">
      
        
        <link rel="stylesheet" href="../../assets/stylesheets/palette.196e0c26.min.css">
        
          
          
          <meta name="theme-color" content="#009485">
        
      
    
    
    
      
        
        <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback">
        <style>body,input{font-family:"Roboto",-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono",SFMono-Regular,Consolas,Menlo,monospace}</style>
      
    
    
    
    
      
    
    
  </head>
  
  
    
    
    
    
    
    <body dir="ltr" data-md-color-scheme="" data-md-color-primary="teal" data-md-color-accent="teal">
      
  
    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
    <label class="md-overlay" for="__drawer"></label>
    <div data-md-component="skip">
      
        
        <a href="#_1" class="md-skip">
          跳转至
        </a>
      
    </div>
    <div data-md-component="announce">
      
    </div>
    
      

<header class="md-header" data-md-component="header">
  <nav class="md-header-nav md-grid" aria-label="Header">
    <a href="../.." title="计算机体系结构实验（2021春季） | 哈工大（深圳）" class="md-header-nav__button md-logo" aria-label="计算机体系结构实验（2021春季） | 哈工大（深圳）">
      
  
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 01-6 6h-18v6a6 6 0 01-6 6h-42V88h42a6 6 0 016 6v6h18a6 6 0 016 6zm0 96v12a6 6 0 01-6 6h-18v6a6 6 0 01-6 6h-42v-48h42a6 6 0 016 6v6h18a6 6 0 016 6zm0 96v12a6 6 0 01-6 6h-18v6a6 6 0 01-6 6h-42v-48h42a6 6 0 016 6v6h18a6 6 0 016 6zm0 96v12a6 6 0 01-6 6h-18v6a6 6 0 01-6 6h-42v-48h42a6 6 0 016 6v6h18a6 6 0 016 6zM30 376h42v48H30a6 6 0 01-6-6v-6H6a6 6 0 01-6-6v-12a6 6 0 016-6h18v-6a6 6 0 016-6zm0-96h42v48H30a6 6 0 01-6-6v-6H6a6 6 0 01-6-6v-12a6 6 0 016-6h18v-6a6 6 0 016-6zm0-96h42v48H30a6 6 0 01-6-6v-6H6a6 6 0 01-6-6v-12a6 6 0 016-6h18v-6a6 6 0 016-6zm0-96h42v48H30a6 6 0 01-6-6v-6H6a6 6 0 01-6-6v-12a6 6 0 016-6h18v-6a6 6 0 016-6z"/></svg>

    </a>
    <label class="md-header-nav__button md-icon" for="__drawer">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
    </label>
    <div class="md-header-nav__title" data-md-component="header-title">
      
        <div class="md-header-nav__ellipsis">
          <span class="md-header-nav__topic md-ellipsis">
            计算机体系结构实验（2021春季） | 哈工大（深圳）
          </span>
          <span class="md-header-nav__topic md-ellipsis">
            
              实验步骤
            
          </span>
        </div>
      
    </div>
    
      <label class="md-header-nav__button md-icon" for="__search">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
      </label>
      
<div class="md-search" data-md-component="search" role="dialog">
  <label class="md-search__overlay" for="__search"></label>
  <div class="md-search__inner" role="search">
    <form class="md-search__form" name="search">
      <input type="text" class="md-search__input" name="query" aria-label="搜索" placeholder="搜索" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required>
      <label class="md-search__icon md-icon" for="__search">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
      </label>
      <button type="reset" class="md-search__icon md-icon" aria-label="Clear" data-md-component="search-reset" tabindex="-1">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
      </button>
    </form>
    <div class="md-search__output">
      <div class="md-search__scrollwrap" data-md-scrollfix>
        <div class="md-search-result" data-md-component="search-result">
          <div class="md-search-result__meta">
            正在初始化搜索引擎
          </div>
          <ol class="md-search-result__list"></ol>
        </div>
      </div>
    </div>
  </div>
</div>
    
    
      <div class="md-header-nav__source">
        
<a href="https://gitee.com/hitsz-cslab/arch" title="前往 GitHub 仓库" class="md-source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z"/></svg>
  </div>
  <div class="md-source__repository">
    CompArch
  </div>
</a>
      </div>
    
  </nav>
</header>
    
    <div class="md-container" data-md-component="container">
      
      
        
          

  

<nav class="md-tabs md-tabs--active" aria-label="Tabs" data-md-component="tabs">
  <div class="md-tabs__inner md-grid">
    <ul class="md-tabs__list">
      
        
  <li class="md-tabs__item">
    
    
    <a href="../.." class="md-tabs__link">
      实验须知
    </a>
  </li>

      
        
      
        
  
  
    <li class="md-tabs__item">
      
      
        
      
      <a href="../aim/" class="md-tabs__link md-tabs__link--active">
        实验1：Pin入门及指令依赖距离分析
      </a>
    </li>
  

      
    </ul>
  </div>
</nav>
        
      
      <main class="md-main" data-md-component="main">
        <div class="md-main__inner md-grid">
          
            
              <div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    

<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
  <label class="md-nav__title" for="__drawer">
    <a href="../.." title="计算机体系结构实验（2021春季） | 哈工大（深圳）" class="md-nav__button md-logo" aria-label="计算机体系结构实验（2021春季） | 哈工大（深圳）">
      
  
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 01-6 6h-18v6a6 6 0 01-6 6h-42V88h42a6 6 0 016 6v6h18a6 6 0 016 6zm0 96v12a6 6 0 01-6 6h-18v6a6 6 0 01-6 6h-42v-48h42a6 6 0 016 6v6h18a6 6 0 016 6zm0 96v12a6 6 0 01-6 6h-18v6a6 6 0 01-6 6h-42v-48h42a6 6 0 016 6v6h18a6 6 0 016 6zm0 96v12a6 6 0 01-6 6h-18v6a6 6 0 01-6 6h-42v-48h42a6 6 0 016 6v6h18a6 6 0 016 6zM30 376h42v48H30a6 6 0 01-6-6v-6H6a6 6 0 01-6-6v-12a6 6 0 016-6h18v-6a6 6 0 016-6zm0-96h42v48H30a6 6 0 01-6-6v-6H6a6 6 0 01-6-6v-12a6 6 0 016-6h18v-6a6 6 0 016-6zm0-96h42v48H30a6 6 0 01-6-6v-6H6a6 6 0 01-6-6v-12a6 6 0 016-6h18v-6a6 6 0 016-6zm0-96h42v48H30a6 6 0 01-6-6v-6H6a6 6 0 01-6-6v-12a6 6 0 016-6h18v-6a6 6 0 016-6z"/></svg>

    </a>
    计算机体系结构实验（2021春季） | 哈工大（深圳）
  </label>
  
    <div class="md-nav__source">
      
<a href="https://gitee.com/hitsz-cslab/arch" title="前往 GitHub 仓库" class="md-source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z"/></svg>
  </div>
  <div class="md-source__repository">
    CompArch
  </div>
</a>
    </div>
  
  <ul class="md-nav__list" data-md-scrollfix>
    
      
      
      


  <li class="md-nav__item">
    <a href="../.." class="md-nav__link">
      实验须知
    </a>
  </li>

    
      
      
      


  <li class="md-nav__item">
    <a href="../../ojguide/" class="md-nav__link">
      作业提交说明
    </a>
  </li>

    
      
      
      

  


  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
    
    <input class="md-nav__toggle md-toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3" checked>
    <label class="md-nav__link" for="nav-3">
      实验1：Pin入门及指令依赖距离分析
      <span class="md-nav__icon md-icon"></span>
    </label>
    <nav class="md-nav" aria-label="实验1：Pin入门及指令依赖距离分析" data-md-level="1">
      <label class="md-nav__title" for="nav-3">
        <span class="md-nav__icon md-icon"></span>
        实验1：Pin入门及指令依赖距离分析
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../aim/" class="md-nav__link">
      实验目的
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../1-overview/" class="md-nav__link">
      实验内容
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../1-theory/" class="md-nav__link">
      实验原理
    </a>
  </li>

        
          
          
          

  


  <li class="md-nav__item md-nav__item--active">
    
    <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
    
      
    
    
      <label class="md-nav__link md-nav__link--active" for="__toc">
        实验步骤
        <span class="md-nav__icon md-icon"></span>
      </label>
    
    <a href="./" class="md-nav__link md-nav__link--active">
      实验步骤
    </a>
    
      
<nav class="md-nav md-nav--secondary" aria-label="目录">
  
  
    
  
  
    <label class="md-nav__title" for="__toc">
      <span class="md-nav__icon md-icon"></span>
      目录
    </label>
    <ul class="md-nav__list" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#1" class="md-nav__link">
    1. 导入虚拟机
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#2-pin" class="md-nav__link">
    2. 运行Pin
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#3-insdependdist" class="md-nav__link">
    3. 编写insDependDist插桩工具
  </a>
  
</li>
      
    </ul>
  
</nav>
    
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../extra/" class="md-nav__link">
      附加题
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../submit/" class="md-nav__link">
      验收与提交
    </a>
  </li>

        
      </ul>
    </nav>
  </li>

    
  </ul>
</nav>
                  </div>
                </div>
              </div>
            
            
              <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    
<nav class="md-nav md-nav--secondary" aria-label="目录">
  
  
    
  
  
    <label class="md-nav__title" for="__toc">
      <span class="md-nav__icon md-icon"></span>
      目录
    </label>
    <ul class="md-nav__list" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#1" class="md-nav__link">
    1. 导入虚拟机
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#2-pin" class="md-nav__link">
    2. 运行Pin
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#3-insdependdist" class="md-nav__link">
    3. 编写insDependDist插桩工具
  </a>
  
</li>
      
    </ul>
  
</nav>
                  </div>
                </div>
              </div>
            
          
          <div class="md-content">
            <article class="md-content__inner md-typeset">
              
                
                
                <h1 id="_1">实验步骤</h1>
<h2 id="1">1. 导入虚拟机</h2>
<p>&emsp;&emsp;本实验提供已安装好实验环境的Ubuntu20.04虚拟机。实验开始前，需要在VirtualBox中导入虚拟机镜像。</p>
<p>&emsp;&emsp;首先，安装并打开VirtualBox。</p>
<p>&emsp;&emsp;然后，按照如图4-1所示，依次点击相应的按钮以导入虚拟机。</p>
<p><center><img src="../assets/4-1.png" width = 600></center>
<center>图4-1 导入虚拟机</center></p>
<p>&emsp;&emsp;点击“打开”按钮后，检查图4-2所示的设置是否与物理机兼容。如果出现不兼容，需根据物理机的配置进行相应的修改。</p>
<p><center><img src="../assets/4-2.png" width = 350></center>
<center>图4-2 检查虚拟机配置是否需要修改</center></p>
<p>&emsp;&emsp;检查无误后，点击窗口右下方的“导入”按钮，耐心等待虚拟机导入完成。</p>
<h2 id="2-pin">2. 运行Pin</h2>
<p>&emsp;&emsp;启动虚拟机后，打开/home/arch目录，其中以“pin-3.18”开头的压缩包即为Pin工具包。</p>
<p>&emsp;&emsp;使用快捷键Ctrl+Alt+T打开命令行终端，并输入tar命令解压Pin的压缩包，如图4-3所示。</p>
<p><center><img src="../assets/4-3.png" width = 450></center>
<center>图4-3 解压下载的Pin压缩包</center></p>
<p>&emsp;&emsp;解压得到的文件夹名字冗长，不妨将其重命名为pin-3.18。</p>
<p>&emsp;&emsp;进入Pin工具包的根目录，可以看到类似图4-4的目录结构。</p>
<p><center><img src="../assets/4-4.png" width = 500></center>
<center>图4-4 Pin工具包根目录</center></p>
<p>&emsp;&emsp;其中，doc文件夹存放的是网页形式的Pin文档，内含API说明文档。</p>
<p>&emsp;&emsp;接着，使用cd命令进入到Pin工具根目录下的source/tools/ManualExamples目录，如图4-5所示。该目录存放的是基于Pin工具包开发的插桩工具范例。</p>
<p><center><img src="../assets/4-5.png" width = 500></center>
<center>图4-5 查看插桩工具demo</center></p>
<p>&emsp;&emsp;然后，执行make命令，编译ManualExamples目录下的插桩工具。</p>
<p>&emsp;&emsp;编译完成后，即可通过Pin工具包调用所生成的插桩工具对可执行文件进行插桩分析，其语法如图4-6所示。</p>
<p><center><img src="../assets/4-6.png" width = 500></center>
<center>图4-6 Pin命令格式</center></p>
<p>&emsp;&emsp;其中，toolname表示插桩工具，output_file表示插桩工具输出到文件，target_executable则表示被插桩分析的可执行文件。例如，基于上述命令，可以使用inscount0的指令计数插桩工具，对ls命令进行插桩，并将插桩工具的输出保存到result.txt，如图4-7所示。</p>
<p><center><img src="../assets/4-7.png" width = 550></center>
<center>图4-7 运行inscount插桩工具</center></p>
<p>&emsp;&emsp;执行上述命令后，Pin将在当前的ManualExamples目录下调用ls工具，从而在终端中打印出当前目录的文件列表。此时，可查看inscount0插桩工具的输出信息，如图4-8所示。</p>
<p><center><img src="../assets/4-8.png" width = 130></center>
<center>图4-8 inscount0对ls插桩分析的输出</center></p>
<h2 id="3-insdependdist">3. 编写insDependDist插桩工具</h2>
<p>&emsp;&emsp;在虚拟机的/home/arch目录下，2个以“workspace”开头的压缩包均为本实验的实验包。</p>
<p>&emsp;&emsp;本实验的虚拟机是64位的系统，因此只需使用workspace_intel64.zip。</p>
<p>&emsp;&emsp;将实验包解压到Pin工具包的根目录下，如图4-9所示。</p>
<p><center><img src="../assets/4-9.png" width = 500></center>
<center>图4-9 解压workspace到Pin根目录下</center></p>
<p>&emsp;&emsp;打开workspace目录，可见如图4-10所示的文件夹及文件。</p>
<p><center><img src="../assets/4-10.png" width = 500></center>
<center>图4-10 workspace目录中的内容</center></p>
<div class="admonition 注意">
<p class="admonition-title">注意</p>
<p>本实验只需修改insDependDist.cpp和makefile.rules，其余文件夹和文件不需更改。</p>
</div>
<p>&emsp;&emsp;其中，inscount0.cpp是Pin自带的指令计数插桩工具的范例程序；insDependDist.cpp是本实验的指令依赖距离的插桩工具，该工具将获取可执行文件的指令依赖信息，并将这些信息输出到insDependDist.csv文件；paintInsDependDist.py的绘图程序读取insDependDist.csv文件并绘制被分析可执行文件的指令依赖分布图；obj-intel64文件夹存放编译workspace时生成的ELF文件；makefile、makefile.rules和Config文件夹存放编译workspace所需的编译规则及配置；divide_by_zero_unix.c是编译workspace所需的工具源文件。</p>
<p>&emsp;&emsp;然后，打开insDependDist.cpp文件，根据注释中的代码提示，补全5处空缺的功能代码。在insDependDist.cpp中，全局数组insDependDistance[]用于存放被插桩程序的指令依赖距离信息——insDependDistance[i]表示依赖距离为i+1的出现次数。例如，在图3-5所示的代码中，SI寄存器的依赖距离为2和3，CX寄存器的依赖距离为1，则插桩工具分析完这4条指令之后，insDependDistance[0]、insDependDistance[1]、insDependDistance[2]的值都将+1。</p>
<p>&emsp;&emsp;insDependDist.cpp的代码补全完毕后，打开makefile.rules文件，将指令依赖距离插桩工具的名字添加到TEST_TOOL_ROOTS变量的后面，如图4-11所示。</p>
<p><center><img src="../assets/4-11.png" width = 650></center>
<center>图4-11 在makefile.rules中添加新的插桩工具</center></p>
<p>&emsp;&emsp;所有代码编写完成后，打开终端，使用cd命令进入到workspace目录，并输入make命令以编译insDependDist工具。</p>
<p>&emsp;&emsp;编译完成后，将在obj-intel64（或obj-ia32）目录下生成insDependDist.o和insDependDist.so文件。</p>
<p>&emsp;&emsp;接着，可以在终端中输入如图4-12所示的命令，对/bin/ls进行插桩分析。</p>
<p><center><img src="../assets/4-12a.png" width = 400></center>
<center>a) 默认情况下，最大统计100及以内的依赖距离</center></p>
<p><center><img src="../assets/4-12b.png" width = 500></center>
<center>b) 通过-s选项设置插桩工具统计的最大依赖距离（如设置为120）</center></p>
<p><center>图4-12 使用insDependDist工具对/bin/ls进行插桩分析</center></p>
<p>&emsp;&emsp;需要注意的是，insDependDist工具默认只统计被插桩可执行文件中不超过100的依赖距离。如果想统计更远的距离，可以使用-s选项来设置，如图4-12 b)所示。此功能得益于insDependDist.cpp中用于设置最大依赖距离的Knob，如图4-13所示。</p>
<p><center><img src="../assets/4-13.png" width = 650></center>
<center>图4-13 insDependDist工具中，设置最大依赖距离的Knob</center></p>
<p>&emsp;&emsp;通过编写Knob，可以在调用插桩工具时进行特殊参数的设置。感兴趣的同学可以自行编写新的Knob。</p>
<p>&emsp;&emsp;insDependDist工具运行后，将在当前目录中生成/bin/ls的指令依赖距离信息。此时，在终端中使用python3运行paintInsDependDist.py脚本，即可得到/bin/ls的指令依赖距离分布图，如图4-14所示。</p>
<p><center><img src="../assets/4-14.png" width = 450></center>
<center>图4-14 /bin/ls的指令依赖距离分布图参考</center></p>
<div class="admonition 注意">
<p class="admonition-title">注意</p>
<p>paintInsDependDist.py默认绘制45以内的依赖距离。若想绘制更多，可在调用脚本时添加参数，如“python3 paintInsDependDist.py 100”。</p>
</div>
<p>&emsp;&emsp;感兴趣的同学还可以其他对常用的命令（如pwd、clear、cat等等），或者自己编写的程序进行插桩分析。</p>
                
              
              
                


              
            </article>
          </div>
        </div>
      </main>
      
        
<footer class="md-footer">
  
    <div class="md-footer-nav">
      <nav class="md-footer-nav__inner md-grid" aria-label="Footer">
        
          <a href="../1-theory/" class="md-footer-nav__link md-footer-nav__link--prev" rel="prev">
            <div class="md-footer-nav__button md-icon">
              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
            </div>
            <div class="md-footer-nav__title">
              <div class="md-ellipsis">
                <span class="md-footer-nav__direction">
                  上一页
                </span>
                实验原理
              </div>
            </div>
          </a>
        
        
          <a href="../extra/" class="md-footer-nav__link md-footer-nav__link--next" rel="next">
            <div class="md-footer-nav__title">
              <div class="md-ellipsis">
                <span class="md-footer-nav__direction">
                  下一页
                </span>
                附加题
              </div>
            </div>
            <div class="md-footer-nav__button md-icon">
              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg>
            </div>
          </a>
        
      </nav>
    </div>
  
  <div class="md-footer-meta md-typeset">
    <div class="md-footer-meta__inner md-grid">
      <div class="md-footer-copyright">
        
          <div class="md-footer-copyright__highlight">
            Copyright &copy; 2019 - 2021 哈尔滨工业大学（深圳）
          </div>
        
        Made with
        <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
          Material for MkDocs
        </a>
      </div>
      
    </div>
  </div>
</footer>
      
    </div>
    
      <script src="../../assets/javascripts/vendor.7e0ee788.min.js"></script>
      <script src="../../assets/javascripts/bundle.b3a72adc.min.js"></script><script id="__lang" type="application/json">{"clipboard.copy": "\u590d\u5236", "clipboard.copied": "\u5df2\u590d\u5236", "search.config.lang": "ja", "search.config.pipeline": "trimmer, stemmer", "search.config.separator": "[\\uff0c\\u3002]+", "search.placeholder": "\u641c\u7d22", "search.result.placeholder": "\u952e\u5165\u4ee5\u5f00\u59cb\u641c\u7d22", "search.result.none": "\u6ca1\u6709\u627e\u5230\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.one": "\u627e\u5230 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.other": "# \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}</script>
      
      <script>
        app = initialize({
          base: "../..",
          features: ['navigation.tabs'],
          search: Object.assign({
            worker: "../../assets/javascripts/worker/search.4ac00218.min.js"
          }, typeof search !== "undefined" && search)
        })
      </script>
      
        <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML"></script>
      
    
  </body>
</html>